perm filename SUBRZ.F4[SCR,LCS] blob sn#258335 filedate 1977-01-17 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		SUBROUTINE SUBR
C00005 ENDMK
CāŠ—;
	SUBROUTINE SUBR
	COMMON /INS/ INST(27),BG(60)
	COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)

C   INUM=INST#  IPAR=PARAM#  
C   BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
C   IF IREST IS <0, THAT NOTE WILL BE A REST.  
C   INST=INST. NAME,  BG=INSTS' BEGIN TIMES.
C   NOTE #S IN SUBROUTINE: (1-84)  C4=37  FS4=43  C5=49  ETC.
C   F1=86  F15=100 (NO F16!)

C  WILL ACCEPT INST NAMES IN P13 'LIT' LIST.
	IF(IPAR.EQ.13)GO TO 13
C DOES NAME CHANGE ON P13 CALL

C   CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
	X=P(3)
	IF(PL(3).EQ.1)GO TO 1
	X=IFIX(X)
C  FOR RAND NOTES TO PRINT OUT FREQS.
	X=30.8677*2**(X/12)
C  X=FREQ. IN HZ. BASED ON NOTE # IN P3.
	PL(3)=1.
C  THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
1	P(3)=X*2**(P(11)/P(12))
C  P12=# OF DIVISIONS OF THE OCTAVE.  P11=CHROMATIC STEP IN THAT DIV.
	RETURN

13	CALL SHFTCH
	P(13)=0
C REPLACE NAME BY A ZERO FOR P13
	PL(13)=1.
	END

	SUBROUTINE SHFTCH
	DIMENSION RNAME(5),JNM(5)
	COMMON /INS/ INST(27),BG(60)
	COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
	COMMON/VV/LIMIT, V(1) /C/T,NWZZ,IT3,T6,NW,TDUR,A,T2,T4,IL
	1,KODE,NPAR,LP,TBG,AC,NPA,BX,IDF,PM,NM,PAR,PX2,T1,RD,VIJ2
	EQUIVALENCE (RNAME,JNM)
	DATA KK/128/,LL/"377777777777/,JJ/"2000000000/
	DATA MM/"774000000000/
	J=PM-1
C PM POINTS TO 1ST WORD OF LIT. STRING., PAR= LAST
	N=V(J)
C  THE WORD COUNT
	DO 15 K=1,5
	J=J+1
	X=V(J)
	IF(K.GT.N)X=' '
15	RNAME(K)=X
C N=WDCNT OF INST NAME
	NN=0
	DO 10 K=5,1,-1
	NN=NN .OR. (JNM(K) .AND. MM)
	IF (K-1) 20,20,17
17	IF (NN) 12,13,13
12	NN = (( NN .AND. LL)/KK) .OR. JJ
	GO TO 10
13	NN = NN / KK
10	CONTINUE
20	INST(INUM)=NN
	END